package NGUYENMINHHIEU.OOP.EXCERCISEDEMO.EX06_OBJECTS;

public class MODELS {    
    /***
     * Tính diện tích
     * @param obj
     * @param shOpt = 0: Circle; shOpt = 1: Octagon
     * @return
     */
    public double getArea(Object obj, short shOpt){
        double result = 0;
        switch (shOpt) {
            //TH: Xử lý với Tam giác
            case 0: {
                //1. Mapping thông tin từ kiểu Object --> CircleEntity
                CIRCLE_ENTITY objEntity = (CIRCLE_ENTITY) obj;
                
                //2. Thực thi tính diện tích        
                result = objEntity.Area(objEntity); } break;
                
            //TH: Xử lý với Bát giác
            case 1: {
                //1. Mapping thông tin từ kiểu Object --> CircleEntity
                OCTAGON_ENTITY objEntity = (OCTAGON_ENTITY) obj;
                
                //2. Thực thi tính diện tích        
                result = objEntity.getArea(objEntity); } break;
        }
        return result;
    }
    
    public double getPerrimetter(Object obj){
        //1. Mapping thông tin từ kiểu Object --> CircleEntity
        CIRCLE_ENTITY objEntity = (CIRCLE_ENTITY) obj;
        
        //2. Thực thi tính diện tích        
        return objEntity.Perrimetter(objEntity); 
    }
}
